from PublicReference.base import *


class 黑暗武士主动技能(主动技能):
    类型 = '物理'
    武器惩罚类型 = '物理百分比'
    计算CD = 0

    def 等效CD(self, 武器类型, 输出类型, 恢复速度=1):
        if self.计算CD != 0:
            return round(self.计算CD, 1)
        return round(self.CD / (1 if 恢复速度 == 0 else self.恢复) * 武器冷却惩罚(武器类型, self.武器惩罚类型, self.版本), 1)


class 职业主动技能(主动技能):
    技能施放时间 = 0.0
    脱手 = 1
    data0 = []
    data1 = []
    data2 = []
    data3 = []

    攻击次数 = 1
    攻击次数1 = 0
    攻击次数2 = 0
    攻击次数3 = 0

    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        if len(self.data0) >= self.等级 and len(self.data0) > 0:
            等效倍率 += self.data0[self.等级] * self.攻击次数
        if len(self.data1) >= self.等级 and len(self.data1) > 0:
            等效倍率 += self.data1[self.等级] * self.攻击次数1
        if len(self.data2) >= self.等级 and len(self.data2) > 0:
            等效倍率 += self.data2[self.等级] * self.攻击次数2
        if len(self.data3) >= self.等级 and len(self.data3) > 0:
            等效倍率 += self.data3[self.等级] * self.攻击次数3
        return 等效倍率 * (1 + self.TP成长 * self.TP等级) * self.倍率

    类型 = '物理'
    武器惩罚类型 = '物理百分比'
    计算CD = 0

    def 等效CD(self, 武器类型, 输出类型, 恢复速度=1):
        if self.计算CD != 0:
            return round(self.计算CD, 1)
        return round(self.CD / (1 if 恢复速度 == 0 else self.恢复) * 武器冷却惩罚(武器类型, self.武器惩罚类型, self.版本), 1)


class 技能0(职业主动技能):
    名称 = '挑击'
    类型 = '物理'
    所在等级 = 1
    等级上限 = 20
    基础等级 = 10
    # 基础 = 88.9
    # 成长 = 11.1
    CD = 2.0
    TP成长 = 0.08
    TP上限 = 5
    # 物理攻击力：<data0>%
    data0 = [0, 100, 111, 122, 133, 144, 155, 167, 178, 189, 200, 211, 222, 233, 244, 255, 266, 278, 289, 300, 311, 322, 333, 344, 355, 366, 377, 389, 400, 411, 422, 433, 444, 455, 466,
             477, 488, 500, 511, 522, 533, 544, 555, 566, 577, 588, 599, 611, 622, 633, 644, 655, 666, 677, 688, 699, 710, 722, 733, 744, 755, 766, 777, 788, 799, 810, 821, 833, 844, 855, 866]


class 技能1(职业主动技能):
    名称 = '暗影斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 1
    等级上限 = 60
    基础等级 = 50
    # 基础 = 577.673
    # 成长 = 65.327
    CD = 3.1
    TP成长 = 0.1
    TP上限 = 5
    # 魔法攻击力：<data0>%
    data0 = [0, 643, 709, 773, 839, 903, 970, 1036, 1100, 1165, 1231, 1295, 1362, 1427, 1491, 1557, 1623, 1687, 1753, 1819, 1883, 1949, 2015, 2079, 2144, 2210, 2277, 2341, 2406, 2471, 2538, 2603, 2667, 2733, 2797, 2865,
             2929, 2994, 3059, 3124, 3191, 3257, 3321, 3385, 3452, 3516, 3582, 3647, 3713, 3779, 3844, 3909, 3973, 4038, 4104, 4171, 4235, 4299, 4367, 4432, 4495, 4562, 4625, 4692, 4757, 4822, 4887, 4952, 5019, 5086, 5149]


class 技能2(职业主动技能):
    名称 = '黑暗十字斩'
    类型 = '物理'
    所在等级 = 5
    等级上限 = 60
    基础等级 = 50
    # 基础 = 125.776
    # 成长 = 14.224
    # 攻击次数 = 2
    # 基础2 = 552.490
    # 成长2 = 52.531
    # 攻击次数2 = 1
    # 斩击物理攻击力：<data0>%
    data0 = [0, 140, 154, 168, 182, 197, 211, 225, 239, 253, 268, 282, 296, 310, 325, 339, 353, 367, 381, 396, 410, 424, 438, 453, 467, 481, 495, 510, 524, 538, 552, 566, 581, 595, 609, 623,
             638, 652, 666, 680, 694, 709, 723, 737, 751, 766, 780, 794, 808, 822, 837, 851, 865, 879, 894, 908, 922, 936, 950, 965, 979, 993, 1007, 1022, 1036, 1050, 1064, 1078, 1093, 1107, 1121]
    攻击次数 = 2
    # 黑暗十字物理攻击力：<data1>%
    data1 = [0, 615, 678, 740, 803, 866, 928, 991, 1053, 1116, 1178, 1241, 1303, 1365, 1427, 1490, 1552, 1615, 1677, 1740, 1802, 1865, 1927, 1990, 2052, 2115, 2178, 2240, 2303, 2365, 2428, 2490, 2553, 2615, 2678, 2740,
             2803, 2865, 2928, 2990, 3053, 3115, 3178, 3240, 3303, 3366, 3428, 3491, 3553, 3616, 3678, 3741, 3803, 3866, 3928, 3991, 4053, 4116, 4178, 4241, 4303, 4365, 4427, 4490, 4553, 4615, 4678, 4740, 4803, 4865, 4928]
    攻击次数1 = 1
    CD = 3.0
    TP成长 = 0.08
    TP上限 = 5


class 技能3(职业主动技能):
    名称 = '暗影·波动剑'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 5
    等级上限 = 60
    基础等级 = 50
    # 基础 = 628.98
    # 成长 = 71.020
    # 魔法攻击力：<data0>%
    data0 = [0, 700, 770, 842, 912, 984, 1054, 1126, 1196, 1268, 1338, 1410, 1480, 1552, 1622, 1694, 1764, 1836, 1906, 1978, 2050, 2120, 2192, 2262, 2334, 2404, 2476, 2546, 2618, 2688, 2760, 2830, 2902, 2972, 3044, 3114,
             3186, 3256, 3328, 3398, 3470, 3540, 3612, 3684, 3754, 3826, 3896, 3968, 4038, 4110, 4180, 4252, 4322, 4394, 4464, 4536, 4606, 4678, 4748, 4820, 4890, 4962, 5032, 5104, 5174, 5246, 5316, 5388, 5460, 5530, 5602]
    CD = 3.1
    TP成长 = 0.08
    TP上限 = 5


class 技能4(职业主动技能):
    名称 = '旋涡斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 5
    等级上限 = 60
    基础等级 = 50
    基础 = 622
    成长 = 71
    基础2 = 422
    成长2 = 47.5
    攻击次数2 = 3
    CD = 8
    TP成长 = 0
    TP上限 = 3

    # 上斩魔法攻击力：<data0>%
    data0 = [0, 273, 301, 328, 356, 384, 411, 439, 467, 495, 522, 550, 578, 606, 633, 661, 689, 717, 744, 772, 800, 827, 855, 883, 911, 938, 966, 994, 1022, 1049, 1077, 1105, 1132, 1160, 1188, 1216, 1243,
             1271, 1299, 1327, 1354, 1382, 1410, 1437, 1465, 1493, 1521, 1548, 1576, 1604, 1632, 1659, 1687, 1715, 1743, 1770, 1798, 1826, 1853, 1881, 1909, 1937, 1964, 1992, 2020, 2048, 2075, 2103, 2131, 2158, 2186]
    攻击次数 = 1
    # 下斩魔法攻击力：<data1>%
    data1 = [0, 420, 463, 505, 548, 591, 633, 676, 719, 761, 804, 847, 889, 932, 975, 1017, 1060, 1103, 1145, 1188, 1231, 1273, 1316, 1359, 1401, 1444, 1487, 1529, 1572, 1615, 1657, 1700, 1743, 1785, 1828, 1870,
             1913, 1956, 1998, 2041, 2084, 2126, 2169, 2212, 2254, 2297, 2340, 2382, 2425, 2468, 2510, 2553, 2596, 2638, 2681, 2724, 2766, 2809, 2852, 2894, 2937, 2980, 3022, 3065, 3108, 3150, 3193, 3236, 3278, 3321, 3364]
    攻击次数1 = 3
    # 暗黑波动魔法攻击力：<data2>%
    data2 = [0, 469, 516, 564, 611, 660, 707, 754, 802, 849, 898, 945, 993, 1040, 1088, 1136, 1183, 1231, 1278, 1326, 1374, 1421, 1469, 1517, 1565, 1612, 1659, 1707, 1755, 1803, 1850, 1897, 1946, 1993, 2041, 2088,
             2136, 2184, 2231, 2279, 2326, 2374, 2422, 2469, 2517, 2564, 2613, 2660, 2708, 2755, 2802, 2851, 2898, 2946, 2993, 3041, 3089, 3136, 3184, 3231, 3280, 3327, 3374, 3422, 3470, 3518, 3565, 3612, 3660, 3708, 3756]

    # TP影响第二段攻击次数
    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        if len(self.data0) >= self.等级 and len(self.data0) > 0:
            等效倍率 += self.data0[self.等级] * self.攻击次数
        if len(self.data1) >= self.等级 and len(self.data1) > 0:
            等效倍率 += self.data1[self.等级] * (self.攻击次数1+self.TP等级)
        if len(self.data2) >= self.等级 and len(self.data2) > 0:
            等效倍率 += self.data2[self.等级] * self.攻击次数2
        if len(self.data3) >= self.等级 and len(self.data3) > 0:
            等效倍率 += self.data3[self.等级] * self.攻击次数3
        return 等效倍率 * self.倍率

    # def 等效百分比(self, 武器类型):
    #     if self.等级 == 0:
    #         return 0
    #     else:
    #         return int((self.攻击次数 * (self.基础 + self.成长 * self.等级) + (self.攻击次数2+self.TP等级) * (self.基础2 + self.成长2 * self.等级))* self.倍率)


class 技能5(职业主动技能):
    名称 = '滑斩'
    类型 = '物理'
    所在等级 = 1
    等级上限 = 60
    基础等级 = 50
    # 基础 = 749.347
    # 成长 = 84.653
    # 物理攻击力：<data0>%
    data0 = [0, 834, 918, 1002, 1088, 1172, 1256, 1342, 1426, 1510, 1596, 1680, 1764, 1850, 1934, 2018, 2104, 2188, 2272, 2358, 2442, 2526, 2612, 2696, 2780, 2866, 2950, 3034, 3120, 3204, 3288, 3374, 3458, 3542, 3628,
             3712, 3796, 3882, 3966, 4050, 4136, 4220, 4304, 4390, 4474, 4558, 4644, 4728, 4812, 4898, 4982, 5066, 5152, 5236, 5322, 5406, 5490, 5576, 5660, 5744, 5830, 5914, 5998, 6084, 6168, 6252, 6338, 6422, 6506, 6592, 6676]
    CD = 3.0


class 技能6(职业主动技能):
    名称 = '跃斩'
    类型 = '物理'
    所在等级 = 1
    等级上限 = 60
    基础等级 = 50
    # 物理攻击力：<data0>%
    data0 = [0, 623, 686, 750, 813, 876, 939, 1002, 1065, 1128, 1191, 1256, 1320, 1383, 1446, 1509, 1572, 1635, 1700, 1763, 1826, 1889, 1952, 2015, 2078, 2141, 2205, 2268, 2331, 2396, 2459, 2522, 2585, 2649, 2712, 2775,
             2838, 2901, 2964, 3027, 3090, 3153, 3218, 3281, 3344, 3407, 3470, 3534, 3599, 3662, 3725, 3788, 3851, 3914, 3977, 4040, 4103, 4167, 4230, 4293, 4356, 4419, 4482, 4545, 4611, 4674, 4737, 4800, 4863, 4926, 4989]
    # 装备钝器时， 冲击波物理攻击力：<data1>%
    data1 = [0, 495, 548, 600, 653, 705, 758, 810, 863, 915, 968, 1020, 1073, 1125, 1178, 1230, 1284, 1335, 1388, 1442, 1493, 1545, 1599, 1650, 1703, 1757, 1808, 1860, 1914, 1967, 2018, 2072, 2124, 2175, 2229, 2282,
             2333, 2387, 2439, 2493, 2544, 2597, 2651, 2702, 2754, 2808, 2859, 2912, 2966, 3017, 3069, 3122, 3174, 3227, 3279, 3332, 3386, 3438, 3491, 3543, 3596, 3648, 3701, 3753, 3806, 3858, 3911, 3963, 4016, 4068, 4121]
    攻击次数1 = 0
    CD = 3.0
    # 钝器冲击波

    def 等效百分比(self, 武器类型):
        if 武器类型 == '钝器':
            self.攻击次数1 = 1
        return super().等效百分比(武器类型)
        # if self.等级 == 0:
        #     return 0
        # else:
        #     if 武器类型 != '钝器':
        #         return self.基础 + self.成长 * self.等级
        #     else:
        #         return (self.基础 + self.成长 * self.等级) + (442.269 + 52.531 * self.等级)


class 技能7(职业主动技能):
    名称 = '跃地斩'
    类型 = '物理'
    所在等级 = 10
    等级上限 = 60
    基础等级 = 48
    # 基础 = 320.429
    # 成长 = 34.571
    # 物理攻击力：<data0>%
    data0 = [0, 355, 391, 427, 463, 499, 535, 571, 607, 643, 679, 715, 751, 787, 823, 860, 896, 932, 968, 1004, 1040, 1076, 1112, 1148, 1184, 1220, 1256, 1292, 1328, 1364, 1400, 1436, 1472, 1508, 1544, 1580, 1617,
             1653, 1689, 1725, 1761, 1797, 1833, 1869, 1905, 1941, 1977, 2013, 2049, 2085, 2121, 2157, 2193, 2229, 2265, 2301, 2338, 2374, 2410, 2446, 2482, 2518, 2554, 2590, 2626, 2662, 2698, 2734, 2770, 2806, 2842]
    攻击次数 = 4
    CD = 4.0
    TP成长 = 0.08
    TP上限 = 5


class 技能8(职业主动技能):
    名称 = '冥光斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 10
    等级上限 = 60
    基础等级 = 48
    # 基础 = 435.787
    # 成长 = 49.213
    # 魔法攻击力：<data0>%
    data0 = [0, 485, 534, 583, 632, 682, 731, 780, 829, 878, 928, 977, 1026, 1075, 1124, 1174, 1223, 1272, 1321, 1370, 1420, 1470, 1518, 1567, 1616, 1666, 1716, 1764, 1814, 1862, 1912, 1962, 2010, 2060, 2108, 2159,
             2208, 2256, 2306, 2354, 2405, 2454, 2503, 2552, 2602, 2651, 2700, 2749, 2798, 2848, 2897, 2946, 2995, 3044, 3094, 3143, 3192, 3241, 3290, 3340, 3389, 3438, 3487, 3536, 3586, 3635, 3684, 3733, 3782, 3832, 3881]
    攻击次数 = 2
    CD = 10.5
    TP成长 = 0.10
    TP上限 = 5


class 技能9(职业主动技能):
    名称 = '瞬影斩'
    类型 = '物理'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 41
    # 基础 = 1299.2
    # 成长 = 146.8
    # 物理攻击力：<data0>%
    data0 = [0, 1446, 1593, 1740, 1887, 2034, 2180, 2327, 2474, 2621, 2768, 2914, 3061, 3208, 3355, 3502, 3648, 3795, 3942, 4089, 4236, 4382, 4529, 4676, 4823, 4970, 5116, 5263, 5410, 5557, 5704, 5850, 5997, 6144, 6291, 6438,
             6584, 6731, 6878, 7025, 7172, 7318, 7465, 7612, 7759, 7906, 8052, 8199, 8346, 8493, 8640, 8786, 8933, 9080, 9227, 9374, 9520, 9667, 9814, 9961, 10108, 10254, 10401, 10548, 10695, 10841, 10988, 11135, 11282, 11429, 11575]
    攻击次数 = 2
    TP成长 = 0.1
    TP上限 = 5
    CD = 5


class 技能10(职业主动技能):
    名称 = '暗月斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 5
    等级上限 = 60
    基础等级 = 50
    # 基础 = 395.347
    # 成长 = 44.653
    # 基础2 = 427.633
    # 成长2 = 48.367
    # 攻击次数2 = 1
    # 月形斩击魔法攻击力：<data0>%
    data0 = [0, 440, 484, 530, 576, 618, 662, 708, 754, 796, 842, 886, 932, 974, 1020, 1064, 1108, 1156, 1198, 1244, 1288, 1334, 1378, 1422, 1466, 1510, 1556, 1602, 1648, 1690, 1734,
             1780, 1826, 1868, 1914, 1958, 2000, 2046, 2092, 2138, 2182, 2224, 2270, 2314, 2358, 2404, 2448, 2492, 2538, 2584, 2628, 2674, 2716, 2764, 2806, 2852, 2898, 2940, 2984, 3030]
    # 单手上斩魔法攻击力：<data1>%
    data1 = [0, 476, 524, 572, 622, 670, 718, 766, 816, 864, 912, 962, 1008, 1056, 1104, 1152, 1204, 1250, 1298, 1348, 1396, 1444, 1490, 1540, 1588, 1638, 1688, 1734, 1782, 1830, 1880,
             1928, 1974, 2026, 2070, 2122, 2170, 2216, 2266, 2314, 2362, 2412, 2458, 2508, 2556, 2606, 2654, 2702, 2748, 2798, 2846, 2894, 2944, 2992, 3042, 3092, 3138, 3186, 3234, 3284]
    攻击次数1 = 1
    CD = 4.2
    TP成长 = 0.08
    TP上限 = 5


class 技能11(职业主动技能):
    名称 = '暗影三击剑'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 10
    等级上限 = 60
    基础等级 = 32
    # 基础 = 1822.806
    # 成长 = 346.194
    # 刺击下段魔法攻击力：<data0>%
    data0 = [0, 542, 629, 715, 802, 889, 975, 1062, 1148, 1235, 1321, 1408, 1494, 1581, 1667, 1754, 1841, 1927, 2014, 2100, 2187, 2273, 2360, 2446, 2533, 2620, 2706, 2793, 2879, 2966, 3052, 3139, 3225, 3312, 3398, 3485,
             3572, 3658, 3745, 3831, 3918, 4004, 4091, 4177, 4264, 4350, 4437, 4524, 4610, 4697, 4783, 4870, 4956, 5043, 5129, 5216, 5302, 5389, 5476, 5562, 5649, 5735, 5822, 5908, 5995, 6081, 6168, 6254, 6341, 6428, 6514]
    # 刺击上段魔法攻击力：<data1>%
    data1 = [0, 542, 629, 715, 802, 889, 975, 1062, 1148, 1235, 1321, 1408, 1494, 1581, 1667, 1754, 1841, 1927, 2014, 2100, 2187, 2273, 2360, 2446, 2533, 2620, 2706, 2793, 2879, 2966, 3052, 3139, 3225, 3312, 3398, 3485,
             3572, 3658, 3745, 3831, 3918, 4004, 4091, 4177, 4264, 4350, 4437, 4524, 4610, 4697, 4783, 4870, 4956, 5043, 5129, 5216, 5302, 5389, 5476, 5562, 5649, 5735, 5822, 5908, 5995, 6081, 6168, 6254, 6341, 6428, 6514]
    攻击次数1 = 1
    # 刺击中段魔法攻击力：<data2>%
    data2 = [0, 1085, 1258, 1431, 1605, 1778, 1951, 2124, 2297, 2470, 2643, 2816, 2989, 3162, 3335, 3509, 3682, 3855, 4028, 4201, 4374, 4547, 4720, 4893, 5066, 5240, 5413, 5586, 5759, 5932, 6105, 6278, 6451, 6624, 6797, 6970, 7144,
             7317, 7490, 7663, 7836, 8009, 8182, 8355, 8528, 8701, 8874, 9048, 9221, 9394, 9567, 9740, 9913, 10086, 10259, 10432, 10605, 10778, 10952, 11125, 11298, 11471, 11644, 11817, 11990, 12163, 12336, 12509, 12683, 12856, 13029]
    攻击次数2 = 1
    CD = 8.4


class 技能12(职业主动技能):
    名称 = '暗劲爆发'
    类型 = '物理'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 46
    # 基础 = 353.044
    # 成长 = 39.956
    # 基础2 = 389.933
    # 成长2 = 44.067
    # 攻击次数2 = 8
    # 冲击波物理攻击力：<data0>%
    data0 = [0, 393, 433, 473, 513, 553, 593, 633, 673, 713, 753, 793, 833, 873, 913, 953, 993, 1033, 1073, 1113, 1152, 1192, 1232, 1272, 1312, 1352, 1392, 1432, 1472, 1512, 1552, 1592, 1632, 1672, 1712, 1752,
             1792, 1832, 1872, 1912, 1952, 1992, 2031, 2071, 2111, 2151, 2191, 2231, 2271, 2311, 2351, 2391, 2431, 2471, 2511, 2551, 2591, 2631, 2671, 2711, 2751, 2791, 2831, 2871, 2910, 2950, 2990, 3030, 3070, 3110, 3150]
    # 爆炸物理攻击力：<data1>%
    data1 = [0, 434, 478, 522, 566, 610, 654, 698, 742, 786, 830, 875, 919, 963, 1007, 1051, 1095, 1139, 1183, 1227, 1271, 1315, 1359, 1403, 1447, 1491, 1536, 1580, 1624, 1668, 1712, 1756, 1800, 1844, 1888, 1932,
             1976, 2020, 2064, 2108, 2152, 2197, 2241, 2285, 2329, 2373, 2417, 2461, 2505, 2549, 2593, 2637, 2681, 2725, 2769, 2813, 2857, 2902, 2946, 2990, 3034, 3078, 3122, 3166, 3210, 3254, 3298, 3342, 3386, 3430, 3474]
    攻击次数1 = 8
    CD = 15.0
    TP成长 = 0.1
    TP上限 = 5


class 技能13(职业主动技能):
    名称 = '邪影·波动剑'
    类型 = '魔法'
    武器惩罚类型 = '魔法固伤'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 43
    data0 = [100]*60
    # 前进时的魔法攻击力：<data0>%
    data1 = [0, 790, 870, 950, 1031, 1111, 1191, 1271, 1351, 1432, 1512, 1592, 1672, 1752, 1833, 1913, 1993, 2073, 2153, 2234, 2314, 2394, 2474, 2554, 2635, 2715, 2795, 2875, 2955, 3036, 3116, 3196, 3276, 3356, 3436,
             3517, 3597, 3677, 3757, 3837, 3918, 3998, 4078, 4158, 4238, 4319, 4399, 4479, 4559, 4639, 4720, 4800, 4880, 4960, 5040, 5121, 5201, 5281, 5361, 5441, 5522, 5602, 5682, 5762, 5842, 5923, 6003, 6083, 6163, 6243, 6324]
    攻击次数1 = 3
    # 爆炸魔法攻击力：<data1>%
    data2 = [0, 158, 174, 190, 206, 222, 238, 255, 271, 287, 303, 319, 335, 351, 367, 383, 399, 415, 431, 448, 464, 480, 496, 512, 528, 544, 560, 576, 592, 608, 624, 641, 657, 673, 689, 705, 721,
             737, 753, 769, 785, 801, 818, 834, 850, 866, 882, 898, 914, 930, 946, 962, 978, 994, 1011, 1027, 1043, 1059, 1075, 1091, 1107, 1123, 1139, 1155, 1171, 1187, 1204, 1220, 1236, 1252, 1268]
    攻击次数2 = 4
    # 基础 = 100.0
    # 成长 = 0
    # 基础2 = 709.810
    # 成长2 = 80.190
    # 攻击次数2 = 3
    # 基础3 = 141.905
    # 成长3 = 16.095
    # 攻击次数3 = 4
    CD = 7.0


class 技能14(职业主动技能):
    名称 = '暗魂之手'
    类型 = '物理'
    武器惩罚类型 = '物理百分比'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 43
    # 基础 = 1975-201
    # 成长 = 201
    # 基础2 = 1341-136
    # 成长2 = 136
    # 攻击次数2 = 1
    # 物理攻击力：<data0>%
    data0 = [0, 1975, 2176, 2376, 2577, 2777, 2978, 3178, 3379, 3579, 3779, 3980, 4180, 4381, 4581, 4782, 4982, 5183, 5383, 5583, 5784, 5984, 6185, 6385, 6586, 6786, 6987, 7187, 7388, 7588, 7788, 7989, 8189, 8390, 8590, 8791,
             8991, 9192, 9392, 9592, 9793, 9993, 10194, 10394, 10595, 10795, 10996, 11196, 11397, 11597, 11797, 11998, 12198, 12399, 12599, 12800, 13000, 13201, 13401, 13601, 13802, 14002, 14203, 14403, 14604, 14804, 15005, 15205, 15406]
    # 喷发时物理攻击力：<data1>%
    data1 = [0, 1341, 1477, 1613, 1749, 1885, 2021, 2157, 2293, 2429, 2566, 2702, 2838, 2974, 3110, 3246, 3382, 3518, 3654, 3790, 3926, 4062, 4198, 4335, 4471, 4607, 4743, 4879, 5015, 5151, 5287, 5423, 5559, 5695,
             5831, 5967, 6104, 6240, 6376, 6512, 6648, 6784, 6920, 7056, 7192, 7328, 7464, 7600, 7736, 7873, 8009, 8145, 8281, 8417, 8553, 8689, 8825, 8961, 9097, 9233, 9369, 9505, 9642, 9778, 9914, 10050, 10186, 10322, 10458]
    攻击次数1 = 1
    CD = 6.0
    TP成长 = 0.1
    TP上限 = 5


class 技能15(职业主动技能):
    名称 = '突刺'
    类型 = '物理'
    所在等级 = 10
    等级上限 = 60
    基础等级 = 48
    # 基础 = 160.745 * 3
    # 成长 = 18.255 * 3
    # 攻击次数 = 3
    # 普通物理攻击力：<data0>%
    data0 = [0, 179, 198, 216, 234, 252, 271, 289, 307, 325, 344, 362, 380, 398, 417, 435, 453, 471, 490, 508, 526, 544, 563, 581, 599, 618, 636, 654, 672, 691, 709, 727, 745, 764, 782, 800, 818,
             837, 855, 873, 891, 910, 928, 946, 964, 983, 1001, 1019, 1037, 1056, 1074, 1092, 1110, 1129, 1147, 1165, 1183, 1202, 1220, 1238, 1256, 1275, 1293, 1311, 1329, 1348, 1366, 1384, 1402, 1421, 1439]
    攻击次数 = 3
    CD = 3
    TP上限 = 3
    TP成长 = -0.1

    # 太/光加成
    def 等效百分比(self, 武器类型):
        if 武器类型 == '光剑' or '太刀':
            self.攻击次数 = 5
            self.data0 = [int(x*0.7) for x in self.data0]
        self.攻击次数 = self.攻击次数 + 2*self.TP等级
        return super().等效百分比(武器类型)
        # 等效倍率 = 0.0
        # if len(self.data0) >= self.等级 and len(self.data0) > 0:
        #     等效倍率 += self.data0[self.等级] * (self.攻击次数 + 2*self.TP等级)
        # return 等效倍率 * self.倍率 * (1 + self.TP成长 * self.TP等级)


class 技能16(职业主动技能):
    名称 = '暗影鞭'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 29
    # 基础 = 635.357
    # 成长 = 120.643
    # 基础2 = 1483.5
    # 成长2 = 281.5
    # 攻击次数2 = 1
    # 第1击魔法攻击力：<data0>%
    data0 = [0, 756, 877, 997, 1118, 1239, 1359, 1480, 1601, 1721, 1842, 1963, 2083, 2204, 2325, 2445, 2566, 2686, 2807, 2928, 3048, 3169, 3290, 3410, 3531, 3652, 3772, 3893, 4013, 4134, 4255, 4375, 4496, 4617, 4737,
             4858, 4979, 5099, 5220, 5340, 5461, 5582, 5702, 5823, 5944, 6064, 6185, 6306, 6426, 6547, 6667, 6788, 6909, 7029, 7150, 7271, 7391, 7512, 7633, 7753, 7874, 7994, 8115, 8236, 8356, 8477, 8598, 8718, 8839, 8960, 9080]
    # 第2击魔法攻击力：<data1>%
    data1 = [0, 1765, 2047, 2328, 2610, 2891, 3173, 3454, 3736, 4017, 4299, 4580, 4862, 5143, 5425, 5706, 5987, 6269, 6550, 6832, 7113, 7395, 7676, 7958, 8239, 8521, 8802, 9084, 9365, 9647, 9928, 10210, 10491, 10773, 11054, 11336, 11617,
             11899, 12180, 12462, 12743, 13025, 13306, 13588, 13869, 14151, 14432, 14714, 14995, 15277, 15558, 15840, 16121, 16403, 16684, 16965, 17247, 17528, 17810, 18091, 18373, 18654, 18936, 19217, 19499, 19780, 20062, 20343, 20625, 20906, 21188]
    攻击次数1 = 1
    CD = 8.4
    TP成长 = 0.10
    TP上限 = 5


class 技能17(职业主动技能):
    名称 = '灭魂封魔斩'
    类型 = '物理'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 41
    基础 = 3785.525 * 1.24
    成长 = 427.275 * 1.24
    # 物理攻击力：<data0>%
    # 把前方敌人吸附到自身的近身处， 并对其进行无属性斩击。
    # 吸附的敌人越多， 斩击时造成的伤害就越大。
    data0 = [int(x*1.0) for x in [0, 4213, 4641, 5068, 5496, 5923, 6350, 6778, 7205, 7633, 8060, 8488, 8915, 9343, 9770, 10198, 10625, 11053, 11480, 11908, 12335, 12763, 13190, 13617, 14045, 14472, 14900, 15327, 15755, 16182, 16610, 17037, 17465, 17892, 18320,
                                  18747, 19175, 19602, 20030, 20457, 20884, 21312, 21739, 22167, 22594, 23022, 23449, 23877, 24304, 24732, 25159, 25587, 26014, 26442, 26869, 27297, 27724, 28151, 28579, 29006, 29434, 29861, 30289, 30716, 31144, 31571, 31999, 32426, 32854, 33281, 33709]]
    # 若吸附的是领主、 稀有、 精英、 深渊、 人形怪敌人， 则敌人受到的伤害会更大
    倍率 = 1.24
    CD = 30
    TP成长 = 0.10
    TP上限 = 5


class 技能18(职业主动技能):
    名称 = '冥魂珠'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    # 基础 = 293.811
    # 成长 = 33.189
    # 攻击次数 = 13
    # 基础2 = 668.514
    # 成长2 = 75.486
    # 攻击次数2 = 1
    # 魔法攻击力：<data0>%
    data0 = [0, 327, 360, 393, 426, 459, 493, 526, 559, 592, 625, 659, 692, 725, 758, 791, 824, 858, 891, 924, 957, 990, 1024, 1057, 1090, 1123, 1156, 1190, 1223, 1256, 1289, 1322, 1355, 1389, 1422, 1455, 1488,
             1521, 1555, 1588, 1621, 1654, 1687, 1721, 1754, 1787, 1820, 1853, 1886, 1920, 1953, 1986, 2019, 2052, 2086, 2119, 2152, 2185, 2218, 2252, 2285, 2318, 2351, 2384, 2417, 2451, 2484, 2517, 2550, 2583, 2617]
    攻击次数 = 13
    # 冥魂珠爆炸魔法攻击力：<data2>%
    data1 = [0, 744, 819, 895, 970, 1046, 1121, 1197, 1272, 1348, 1423, 1499, 1574, 1650, 1725, 1801, 1876, 1952, 2027, 2103, 2178, 2254, 2329, 2405, 2480, 2556, 2631, 2707, 2782, 2858, 2933, 3009, 3084, 3160, 3235,
             3311, 3386, 3462, 3537, 3613, 3688, 3764, 3839, 3915, 3990, 4066, 4141, 4217, 4292, 4368, 4443, 4519, 4594, 4670, 4745, 4821, 4896, 4972, 5047, 5123, 5199, 5274, 5350, 5425, 5501, 5576, 5652, 5727, 5803, 5878, 5954]
    攻击次数1 = 1
    CD = 10.5
    # Tp每级增加攻击次数3
    TP成长 = 0.1
    TP上限 = 3

    def 等效百分比(self, 武器类型):
        self.攻击次数 = self.攻击次数 + 3 * self.TP等级
        return super().等效百分比(武器类型)
        # if self.等级 == 0:
        #     return 0
        # else:
        #     return int(((self.攻击次数 + 3*self.TP等级) * (self.基础 + self.成长 * self.等级) + self.攻击次数2 * (self.基础2 + self.成长2 * self.等级)) * self.倍率)


class 技能19(职业主动技能):
    名称 = '暗影升龙击'
    类型 = '物理'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    基础 = 3480.027
    成长 = 392.973
    # 冲撞物理攻击力：<data0>%
    data0 = [0, 900, 991, 1082, 1174, 1265, 1356, 1448, 1539, 1630, 1722, 1813, 1904, 1996, 2087, 2178, 2270, 2361, 2452, 2544, 2635, 2726, 2818, 2909, 3000, 3092, 3183, 3274, 3366, 3457, 3548, 3640, 3731,
             3822, 3914, 4005, 4096, 4188, 4279, 4370, 4462, 4553, 4644, 4736, 4827, 4918, 5010, 5101, 5192, 5284, 5375, 5466, 5558, 5649, 5740, 5832, 5923, 6014, 6106, 6197, 6288, 6380, 6471, 6562, 6654, 6745]
    攻击次数 = 1
    # 上斩物理攻击力：<data1>%
    data1 = [0, 1354, 1491, 1629, 1766, 1903, 2041, 2178, 2316, 2453, 2590, 2728, 2865, 3003, 3140, 3277, 3415, 3552, 3690, 3827, 3964, 4102, 4239, 4376, 4514, 4651, 4789, 4926, 5063, 5201, 5338, 5476, 5613,
             5750, 5888, 6025, 6163, 6300, 6437, 6575, 6712, 6850, 6987, 7124, 7262, 7399, 7537, 7674, 7811, 7949, 8086, 8224, 8361, 8498, 8636, 8773, 8911, 9048, 9185, 9323, 9460, 9597, 9735, 9872, 10010, 10147]
    攻击次数1 = 1
    # 下捶物理攻击力：<data2>% ~ <data3>%
    data2 = [0, 970, 1068, 1166, 1265, 1363, 1462, 1560, 1659, 1757, 1855, 1954, 2052, 2151, 2249, 2348, 2446, 2544, 2643, 2741, 2840, 2938, 3036, 3135, 3233, 3332, 3430, 3529, 3627, 3725, 3824, 3922, 4021,
             4119, 4218, 4316, 4414, 4513, 4611, 4710, 4808, 4906, 5005, 5103, 5202, 5300, 5399, 5497, 5595, 5694, 5792, 5891, 5989, 6087, 6186, 6284, 6383, 6481, 6580, 6678, 6776, 6875, 6973, 7072, 7170, 7269]
    攻击次数2 = 1
    # 下捶冲击波物理攻击力：<data4>%
    data3 = [0, 649, 715, 780, 846, 912, 978, 1044, 1110, 1176, 1241, 1307, 1373, 1439, 1505, 1571, 1637, 1703, 1768, 1834, 1900, 1966, 2032, 2098, 2164, 2229, 2295, 2361, 2427, 2493, 2559, 2625, 2690,
             2756, 2822, 2888, 2954, 3020, 3086, 3152, 3217, 3283, 3349, 3415, 3481, 3547, 3613, 3678, 3744, 3810, 3876, 3942, 4008, 4074, 4139, 4205, 4271, 4337, 4403, 4469, 4535, 4600, 4666, 4732, 4798, 4864]
    攻击次数3 = 1

    CD = 10


class 技能20(职业主动技能):
    名称 = '冥魂之陨'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 魔法攻击力：<data0>%
    data0 = [0, 288, 318, 347, 376, 406, 435, 464, 494, 523, 552, 581, 611, 640, 669, 699, 728, 757, 787, 816, 845, 875, 904, 933, 962, 992, 1021, 1050, 1080, 1109, 1138, 1168, 1197, 1226, 1255, 1285, 1314,
             1343, 1373, 1402, 1431, 1461, 1490, 1519, 1549, 1578, 1607, 1636, 1666, 1695, 1724, 1754, 1783, 1812, 1842, 1871, 1900, 1930, 1959, 1988, 2017, 2047, 2076, 2105, 2135, 2164, 2193, 2223, 2252, 2281, 2311]
    攻击次数 = 24
    CD = 21
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 = 24 * 1.14
            self.CD *= 0.9
        elif x == 1:
            self.攻击次数 = 24 * 1.23
            self.CD *= 0.9


class 技能21(职业主动技能):
    名称 = '破魂之刃'
    类型 = '物理'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 刺击物理攻击力：<data0>%
    data0 = [0, 1184, 1304, 1424, 1544, 1665, 1785, 1905, 2025, 2145, 2265, 2386, 2506, 2626, 2746, 2866, 2986, 3107, 3227, 3347, 3467, 3587, 3707, 3828, 3948, 4068, 4188, 4308, 4428, 4549, 4669, 4789, 4909, 5029,
             5149, 5270, 5390, 5510, 5630, 5750, 5870, 5991, 6111, 6231, 6351, 6471, 6591, 6712, 6832, 6952, 7072, 7192, 7312, 7433, 7553, 7673, 7793, 7913, 8033, 8153, 8274, 8394, 8514, 8634, 8754, 8874, 8995, 9115, 9235]
    # 爆炸物理攻击力：<data1>%
    data1 = [0, 5986, 6594, 7201, 7809, 8416, 9023, 9631, 10238, 10845, 11453, 12060, 12668, 13275, 13882, 14490, 15097, 15704, 16312, 16919, 17527, 18134, 18741, 19349, 19956, 20563, 21171, 21778, 22386, 22993, 23600, 24208, 24815, 25422, 26030,
             26637, 27245, 27852, 28459, 29067, 29674, 30281, 30889, 31496, 32104, 32711, 33318, 33926, 34533, 35140, 35748, 36355, 36963, 37570, 38177, 38785, 39392, 39999, 40607, 41214, 41822, 42429, 43036, 43644, 44251, 44858, 45466, 46073, 46681]
    攻击次数1 = 1
    CD = 20
    TP成长 = 0.1
    TP上限 = 5


class 技能22(职业主动技能):
    名称 = '凝魂波动阵'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 基础 = 1875.171
    # 成长 = 211.829
    # 基础2 = 622.629
    # 成长2 = 70.371
    # 攻击次数2 = 7
    # 捶击物理攻击力：<data0>%
    data0 = [0, 693, 763, 834, 904, 975, 1045, 1115, 1186, 1256, 1326, 1397, 1467, 1538, 1608, 1678, 1749, 1819, 1889, 1960, 2030, 2100, 2171, 2241, 2312, 2382, 2452, 2523, 2593, 2663, 2734, 2804, 2874, 2945, 3015, 3086,
             3156, 3226, 3297, 3367, 3437, 3508, 3578, 3649, 3719, 3789, 3860, 3930, 4000, 4071, 4141, 4211, 4282, 4352, 4423, 4493, 4563, 4634, 4704, 4774, 4845, 4915, 4985, 5056, 5126, 5197, 5267, 5337, 5408, 5478, 5548]
    # 多段魔法攻击力：<data1>%
    data1 = [0, 693, 763, 834, 904, 975, 1045, 1115, 1186, 1256, 1326, 1397, 1467, 1538, 1608, 1678, 1749, 1819, 1889, 1960, 2030, 2100, 2171, 2241, 2312, 2382, 2452, 2523, 2593, 2663, 2734, 2804, 2874, 2945, 3015, 3086,
             3156, 3226, 3297, 3367, 3437, 3508, 3578, 3649, 3719, 3789, 3860, 3930, 4000, 4071, 4141, 4211, 4282, 4352, 4423, 4493, 4563, 4634, 4704, 4774, 4845, 4915, 4985, 5056, 5126, 5197, 5267, 5337, 5408, 5478, 5548]
    攻击次数1 = 7
    # 波动阵解除时的魔法攻击力：<data3>%
    data2 = [0, 1394, 1535, 1677, 1818, 1960, 2101, 2243, 2384, 2526, 2667, 2809, 2950, 3092, 3233, 3374, 3516, 3657, 3799, 3940, 4082, 4223, 4365, 4506, 4648, 4789, 4931, 5072, 5214, 5355, 5496, 5638, 5779, 5921, 6062, 6204,
             6345, 6487, 6628, 6770, 6911, 7053, 7194, 7336, 7477, 7618, 7760, 7901, 8043, 8184, 8326, 8467, 8609, 8750, 8892, 9033, 9175, 9316, 9457, 9599, 9740, 9882, 10023, 10165, 10306, 10448, 10589, 10731, 10872, 11014, 11155]
    攻击次数2 = 1
    # 扩散魔法攻击力：<data4>%，待定 原来没有
    data3 = [0, 273, 301, 329, 357, 384, 412, 440, 468, 495, 523, 551, 579, 607, 634, 662, 690, 718, 745, 773, 801, 829, 857, 884, 912, 940, 968, 995, 1023, 1051, 1079, 1106, 1134, 1162, 1190, 1218, 1245,
             1273, 1301, 1329, 1356, 1384, 1412, 1440, 1468, 1495, 1523, 1551, 1579, 1606, 1634, 1662, 1690, 1717, 1745, 1773, 1801, 1829, 1856, 1884, 1912, 1940, 1967, 1995, 2023, 2051, 2079, 2106, 2134, 2162, 2190]
    攻击次数3 = 1
    CD = 21
    TP成长 = 0.1
    TP上限 = 5


class 技能23(职业主动技能):
    名称 = '破魂斩'
    类型 = '物理'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    # 物理攻击力：<data0>%
    data0 = [0, 5645, 6218, 6791, 7364, 7937, 8509, 9082, 9655, 10228, 10800, 11373, 11946, 12519, 13092, 13664, 14237, 14810, 15383, 15955, 16528, 17101, 17674, 18247, 18819, 19392, 19965, 20538, 21110, 21683, 22256, 22829, 23402, 23974, 24547, 25120,
             25693, 26265, 26838, 27411, 27984, 28557, 29129, 29702, 30275, 30848, 31420, 31993, 32566, 33139, 33712, 34284, 34857, 35430, 36003, 36575, 37148, 37721, 38294, 38867, 39439, 40012, 40585, 41158, 41731, 42303, 42876, 43449, 44022, 44594, 45167]
    CD = 15
    TP成长 = 0.12
    TP上限 = 5

    # def 等效百分比(self, 武器类型):
    #     return self.数据1[self.等级] * (1 + self.TP成长 * self.TP等级) * self.倍率


class 技能24(职业主动技能):
    名称 = '冥炎破空斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    # 冥炎剑右斩击魔法攻击力：<data0>%
    data0 = [0, 1294, 1425, 1557, 1688, 1819, 1950, 2082, 2213, 2344, 2476, 2607, 2738, 2870, 3001, 3132, 3264, 3395, 3526, 3658, 3789, 3920, 4052, 4183, 4314, 4445, 4577, 4708, 4839, 4971, 5102, 5233, 5365, 5496, 5627,
             5759, 5890, 6021, 6153, 6284, 6415, 6547, 6678, 6809, 6940, 7072, 7203, 7334, 7466, 7597, 7728, 7860, 7991, 8122, 8254, 8385, 8516, 8648, 8779, 8910, 9041, 9173, 9304, 9435, 9567, 9698, 9829, 9961, 10092, 10223, 10355]
    # 冥炎剑左斩击魔法攻击力：<data1>%
    data1 = [0, 1945, 2142, 2340, 2537, 2734, 2932, 3129, 3326, 3524, 3721, 3919, 4116, 4313, 4511, 4708, 4905, 5103, 5300, 5497, 5695, 5892, 6090, 6287, 6484, 6682, 6879, 7076, 7274, 7471, 7668, 7866, 8063, 8260, 8458, 8655, 8853, 9050,
             9247, 9445, 9642, 9839, 10037, 10234, 10431, 10629, 10826, 11024, 11221, 11418, 11616, 11813, 12010, 12208, 12405, 12602, 12800, 12997, 13195, 13392, 13589, 13787, 13984, 14181, 14379, 14576, 14773, 14971, 15168, 15366, 15563]
    # 冥炎剑上斩击魔法攻击力：<data2>%
    data2 = [0, 3890, 4285, 4680, 5075, 5469, 5864, 6259, 6653, 7048, 7443, 7838, 8232, 8627, 9022, 9416, 9811, 10206, 10601, 10995, 11390, 11785, 12180, 12574, 12969, 13364, 13758, 14153, 14548, 14943, 15337, 15732, 16127, 16521, 16916, 17311,
             17706, 18100, 18495, 18890, 19285, 19679, 20074, 20469, 20863, 21258, 21653, 22048, 22442, 22837, 23232, 23626, 24021, 24416, 24811, 25205, 25600, 25995, 26390, 26784, 27179, 27574, 27968, 28363, 28758, 29153, 29547, 29942, 30337, 30732, 31126]
    # 冥炎攻击力：<data3>%
    data3 = [0, 130, 143, 156, 169, 183, 196, 209, 222, 235, 249, 262, 275, 288, 301, 315, 328, 341, 354, 367, 381, 394, 407, 420, 434, 447, 460, 473, 486, 500, 513, 526, 539, 552, 566,
             579, 592, 605, 618, 632, 645, 658, 671, 684, 698, 711, 724, 737, 751, 764, 777, 790, 803, 817, 830, 843, 856, 869, 883, 896, 909, 922, 935, 949, 962, 975, 988, 1002, 1015, 1028, 1041]
    攻击次数 = 2
    攻击次数1 = 2
    攻击次数2 = 2
    攻击次数3 = 8
    CD = 47.2
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数2 = 2 * 1.34
            self.攻击次数3 = 8 * 2.67
        elif x == 1:
            self.攻击次数2 = 2 * 1.34
            self.攻击次数3 = 8 * 3.99

    # def 等效百分比(self, 武器类型):
    #     return (self.数据1[self.等级] * self.攻击次数1 + self.数据2[self.等级] * self.攻击次数2 + self.数据3[self.等级] * self.攻击次数3 + self.数据4[self.等级] * self.攻击次数4) * (1 + self.TP成长 * self.TP等级) * self.倍率


class 技能25(职业主动技能):
    名称 = '禁魂斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    # 魔法攻击力：<data0>%
    data0 = [0, 7246, 7982, 8717, 9452, 10187, 10922, 11658, 12393, 13128, 13863, 14598, 15334, 16069, 16804, 17539, 18274, 19010, 19745, 20480, 21215, 21950, 22686, 23421, 24156, 24891, 25626, 26362, 27097, 27832, 28567, 29302, 30038, 30773, 31508, 32243,
             32978, 33714, 34449, 35184, 35919, 36654, 37390, 38125, 38860, 39595, 40330, 41066, 41801, 42536, 43271, 44006, 44742, 45477, 46212, 46947, 47682, 48418, 49153, 49888, 50623, 51358, 52094, 52829, 53564, 54299, 55034, 55770, 56505, 57240, 57975]
    CD = 21
    TP成长 = 0
    TP上限 = 5


class 技能26(职业主动技能):
    名称 = '魔狱裂魂斩'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    # 捶击时物理攻击力：<data0>%
    data0 = [0, 377, 415, 453, 492, 530, 568, 607, 645, 683, 721, 760, 798, 836, 875, 913, 951, 989, 1028, 1066, 1104, 1142, 1181, 1219, 1257, 1296, 1334, 1372, 1410, 1449, 1487, 1525, 1564, 1602, 1640, 1678, 1717,
             1755, 1793, 1832, 1870, 1908, 1946, 1985, 2023, 2061, 2100, 2138, 2176, 2214, 2253, 2291, 2329, 2367, 2406, 2444, 2482, 2521, 2559, 2597, 2635, 2674, 2712, 2750, 2789, 2827, 2865, 2903, 2942, 2980, 3018]
    # 冲击波物理攻击力：<data1>%
    data1 = [0, 2640, 2908, 3176, 3444, 3712, 3980, 4248, 4516, 4784, 5052, 5319, 5587, 5855, 6123, 6391, 6659, 6927, 7195, 7463, 7731, 7999, 8267, 8534, 8802, 9070, 9338, 9606, 9874, 10142, 10410, 10678, 10946, 11214, 11481, 11749, 12017,
             12285, 12553, 12821, 13089, 13357, 13625, 13893, 14161, 14428, 14696, 14964, 15232, 15500, 15768, 16036, 16304, 16572, 16840, 17108, 17376, 17643, 17911, 18179, 18447, 18715, 18983, 19251, 19519, 19787, 20055, 20323, 20590, 20858, 21126]
    # 黑暗气息攻击力：<data2>%
    data2 = [0, 1850, 2037, 2225, 2413, 2601, 2788, 2976, 3164, 3351, 3539, 3727, 3915, 4102, 4290, 4478, 4665, 4853, 5041, 5228, 5416, 5604, 5792, 5979, 6167, 6355, 6542, 6730, 6918, 7105, 7293, 7481, 7669, 7856, 8044, 8232, 8419,
             8607, 8795, 8983, 9170, 9358, 9546, 9733, 9921, 10109, 10296, 10484, 10672, 10860, 11047, 11235, 11423, 11610, 11798, 11986, 12174, 12361, 12549, 12737, 12924, 13112, 13300, 13487, 13675, 13863, 14051, 14238, 14426, 14614, 14801]
    攻击次数 = 1
    攻击次数1 = 1
    攻击次数2 = 6
    CD = 40
    TP成长 = 0.10
    TP上限 = 5


class 技能27(职业主动技能):
    名称 = '黑暗明王阵'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    # 波动旋转魔法伤害：<data0>%
    data0 = [0, 1960, 2159, 2358, 2557, 2750, 2956, 3150, 3348, 3547, 3749, 3948, 4145, 4346, 4542, 4742, 4940, 5141, 5336, 5538, 5735, 5934, 6136, 6334, 6533, 6727, 6931, 7126, 7325, 7524, 7723, 7922, 8122, 8321, 8516, 8720, 8915, 9114,
             9311, 9514, 9713, 9908, 10111, 10306, 10505, 10704, 10904, 11100, 11303, 11498, 11698, 11898, 12096, 12295, 12496, 12690, 12890, 13090, 13290, 13489, 13687, 13888, 14081, 14281, 14480, 14680, 14879, 15077, 15277, 15475, 15673]
    # 爆炸魔法伤害：<data1>%
    data1 = [0, 4547, 5010, 5467, 5926, 6409, 6847, 7326, 7790, 8248, 8700, 9160, 9629, 10080, 10553, 11009, 11473, 11929, 12402, 12854, 13322, 13783, 14233, 14695, 15156, 15635, 16076, 16555, 17016, 17477, 17935, 18395, 18856, 19316, 19789, 20231,
             20706, 21167, 21638, 22082, 22543, 23017, 23464, 23942, 24398, 24862, 25315, 25788, 26237, 26708, 27169, 27625, 28088, 28546, 29006, 29482, 29938, 30398, 30852, 31315, 31776, 32233, 32714, 33170, 33631, 34090, 34552, 35012, 35468, 35933, 36398]
    攻击次数 = 4
    攻击次数1 = 1
    CD = 47.2
    TP成长 = 0.10
    TP上限 = 5


class 技能28(黑暗武士主动技能):
    名称 = '魔影剑舞'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    # 斩击物理攻击力：<data0>%
    data0 = [0, 720, 794, 864, 938, 1011, 1085, 1157, 1230, 1304, 1377, 1448, 1521, 1595, 1667, 1740, 1814, 1887, 1961, 2033, 2106, 2178, 2252, 2325, 2397, 2471, 2544, 2616, 2690, 2762, 2835, 2909, 2981, 3054, 3126,
             3201, 3273, 3345, 3419, 3494, 3564, 3638, 3711, 3783, 3857, 3930, 4004, 4076, 4149, 4223, 4293, 4365, 4439, 4511, 4583, 4656, 4730, 4802, 4875, 4949, 5021, 5094, 5166, 5238, 5312, 5385, 5457, 5531, 5603, 5675, 5748]
    # 剑气物理攻击力：<data1>%
    data1 = [0, 1725, 1898, 2079, 2252, 2429, 2600, 2777, 2955, 3128, 3297, 3480, 3653, 3828, 4007, 4179, 4352, 4524, 4703, 4878, 5051, 5234, 5403, 5576, 5754, 5931, 6102, 6279, 6453, 6633, 6806, 6978, 7157, 7329, 7508, 7677, 7854,
             8033, 8205, 8376, 8559, 8732, 8907, 9084, 9257, 9432, 9605, 9783, 9956, 10128, 10311, 10494, 10667, 10845, 11022, 11195, 11373, 11550, 11723, 11898, 12077, 12249, 12426, 12603, 12777, 12954, 13131, 13304, 13482, 13659, 13832]
    攻击次数 = 13
    护石斩击攻击力 = 1
    护石锤击 = 0
    护石冲击波 = 0
    护石黑暗气息 = 0
    护石升龙斩 = 0
    攻击次数1 = 3
    CD = 45
    TP成长 = 0.10
    TP上限 = 5
    倍率 = 1
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.护石斩击攻击力 = 0.5
            self.攻击次数1 = 0
            # 锤击1次
            self.护石锤击 = 0.19
            # 冲击波1次
            self.护石冲击波 = 1.3
            # 黑暗气息6次
            self.护石黑暗气息 = 0.91 * 6
            self.护石升龙斩 = 0.96
        elif x == 1:
            self.护石斩击攻击力 = 0.5
            self.攻击次数1 = 0
            self.护石锤击 = 0.19
            self.护石冲击波 = 1.3
            self.护石黑暗气息 = 0.91 * 6
            self.护石升龙斩 = 1.63

    def 等效百分比(self, 武器类型):
        return (self.data0[self.等级] * self.攻击次数 * self.护石斩击攻击力 +
                self.data1[self.等级] * self.攻击次数1 +
                self.data1[self.等级] * self.护石锤击 +
                self.data1[self.等级] * self.护石冲击波 +
                self.data1[self.等级] * self.护石黑暗气息 +
                self.data1[self.等级] * self.护石升龙斩) * (1 + self.TP成长 * self.TP等级) * self.倍率


class 技能29(职业主动技能):
    名称 = '幽魂剑'
    所在等级 = 50
    等级上限 = 40
    基础等级 = 19
    data0 = [0, 206, 239, 272, 305, 338, 371, 404, 437, 469, 502, 535, 568, 601, 634, 667, 700, 733, 766, 799, 832, 865, 897, 930, 963, 996, 1029, 1062, 1095, 1128, 1161, 1194, 1227, 1260, 1293, 1326, 1358,
             1391, 1424, 1457, 1490, 1523, 1556, 1589, 1622, 1655, 1688, 1721, 1754, 1786, 1819, 1852, 1885, 1918, 1951, 1984, 2017, 2050, 2083, 2116, 2149, 2182, 2215, 2247, 2280, 2313, 2346, 2379, 2412, 2445, 2478]
    data1 = [0, 6815, 7902, 8988, 10075, 11161, 12248, 13335, 14421, 15508, 16594, 17681, 18767, 19854, 20941, 22027, 23114, 24200, 25287, 26373, 27460, 28547, 29633, 30720, 31806, 32893, 33979, 35066, 36153, 37239, 38326, 39412, 40499, 41585, 42672,
             43758, 44845, 45932, 47018, 48105, 49191, 50278, 51364, 52451, 53538, 54624, 55711, 56797, 57884, 58970, 60057, 61144, 62230, 63317, 64403, 65490, 66576, 67663, 68750, 69836, 70923, 72009, 73096, 74182, 75269, 76355, 77442, 78529, 79615, 80702, 81788]
    攻击次数 = 33
    攻击次数1 = 1
    CD = 45
    是否有护石 = 1
    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 = 6
            self.攻击次数1 = 2.27
            self.CD *= 0.89


class 技能30(职业主动技能):
    名称 = '暗炎冥魂波'
    所在等级 = 60
    等级上限 = 40
    基础等级 = 16
    data0 = [0, 3209, 3721, 4232, 4744, 5256, 5767, 6279, 6791, 7302, 7814, 8326, 8837, 9349, 9861, 10372, 10884, 11396, 11907, 12419, 12931, 13442, 13954, 14466, 14977, 15489, 16001, 16512, 17024, 17535, 18047, 18559, 19070, 19582, 20094, 20605,
             21117, 21629, 22140, 22652, 23164, 23675, 24187, 24699, 25210, 25722, 26234, 26745, 27257, 27769, 28280, 28792, 29304, 29815, 30327, 30839, 31350, 31862, 32374, 32885, 33397, 33909, 34420, 34932, 35444, 35955, 36467, 36979, 37490, 38002, 38514]
    攻击次数 = 5
    CD = 30
    TP成长 = 0.10
    TP上限 = 5
    倍率 = 1
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.21
            self.CD *= 0.9
        elif x == 1:
            self.倍率 *= 1.29
            self.CD *= 0.9


class 技能31(职业主动技能):
    名称 = '斩龙破'
    所在等级 = 70
    等级上限 = 40
    基础等级 = 18
    data0 = [0, 1738, 1914, 2091, 2267, 2444, 2620, 2796, 2973, 3149, 3325, 3502, 3678, 3855, 4031, 4207, 4384, 4560, 4736, 4913, 5089, 5266, 5442, 5618, 5795, 5971, 6147, 6324, 6500, 6677, 6853, 7029, 7206, 7382, 7558, 7735, 7911,
             8088, 8264, 8440, 8617, 8793, 8969, 9146, 9322, 9499, 9675, 9851, 10028, 10204, 10380, 10557, 10733, 10910, 11086, 11262, 11439, 11615, 11791, 11968, 12144, 12321, 12497, 12673, 12850, 13026, 13202, 13379, 13555, 13732, 13908]
    data1 = [0, 1738, 1914, 2091, 2267, 2444, 2620, 2796, 2973, 3149, 3325, 3502, 3678, 3855, 4031, 4207, 4384, 4560, 4736, 4913, 5089, 5266, 5442, 5618, 5795, 5971, 6147, 6324, 6500, 6677, 6853, 7029, 7206, 7382, 7558, 7735, 7911,
             8088, 8264, 8440, 8617, 8793, 8969, 9146, 9322, 9499, 9675, 9851, 10028, 10204, 10380, 10557, 10733, 10910, 11086, 11262, 11439, 11615, 11791, 11968, 12144, 12321, 12497, 12673, 12850, 13026, 13202, 13379, 13555, 13732, 13908]
    data2 = [0, 15840, 17447, 19054, 20661, 22268, 23875, 25482, 27088, 28695, 30302, 31909, 33516, 35123, 36730, 38337, 39944, 41551, 43158, 44765, 46372, 47979, 49586, 51193, 52800, 54407, 56014, 57621, 59228, 60835, 62442, 64049, 65656, 67263, 68870, 70477,
             72084, 73691, 75298, 76905, 78512, 80119, 81726, 83333, 84940, 86546, 88153, 89760, 91367, 92974, 94581, 96188, 97795, 99402, 101009, 102616, 104223, 105830, 107437, 109044, 110651, 112258, 113865, 115472, 117079, 118686, 120293, 121900, 123507, 125114, 126721]
    攻击次数 = 1
    攻击次数1 = 1
    攻击次数2 = 1
    CD = 45
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 = 0
            self.攻击次数1 = 0
            self.data2 = [int(i*0.274) for i in self.data2]
            self.攻击次数2 = 6
            self.CD *= 0.9
        elif x == 1:
            self.攻击次数0 = 0
            self.攻击次数1 = 0
            self.data2 = [int(i*0.29) for i in self.data2]
            self.攻击次数2 = 6
            self.CD *= 0.9


class 技能32(职业主动技能):
    名称 = '邪影升龙斩'
    武器惩罚类型 = '魔法固伤'
    所在等级 = 80
    等级上限 = 40
    基础等级 = 13
    data0 = [0, 43584, 48006, 52427, 56849, 61271, 65692, 70114, 74536, 78957, 83379, 87801, 92222, 96644, 101065, 105487, 109909, 114330, 118752, 123174, 127595, 132017, 136439, 140860, 145282, 149703, 154125, 158547, 162968, 167390, 171812, 176233, 180655, 185077, 189498, 193920,
             198341, 202763, 207185, 211606, 216028, 220450, 224871, 229293, 233715, 238136, 242558, 246979, 251401, 255823, 260244, 264666, 269088, 273509, 277931, 282353, 286774, 291196, 295617, 300039, 304461, 308882, 313304, 317726, 322147, 326569, 330991, 335412, 339834, 344255, 348677]
    CD = 50
    倍率 = 1
    是否有护石 = 1
    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 = 1.32


class 技能33(职业主动技能):
    名称 = '超时空碎裂'
    所在等级 = 85
    等级上限 = 40
    基础等级 = 5
    data0 = [0, 2336, 2877, 3421, 3962, 4503, 5045, 5587, 6128, 6670, 7211, 7754, 8296, 8837, 9378, 9921, 10462, 11003, 11545, 12086, 12629, 13171, 13712, 14253, 14796, 15337, 15878, 16420, 16963, 17504, 18046, 18587, 19129, 19671, 20212, 20753,
             21297, 21838, 22379, 22921, 23463, 24004, 24546, 25087, 25631, 26172, 26713, 27254, 27797, 28338, 28879, 29421, 29962, 30506, 31047, 31588, 32130, 32672, 33213, 33755, 34296, 34839, 35381, 35922, 36463, 37006, 37547, 38088, 38630, 39173, 39714]
    data1 = [0, 44386, 54677, 64970, 75263, 85555, 95847, 106139, 116430, 126723, 137016, 147310, 157601, 167893, 178187, 188478, 198771, 209064, 219353, 229647, 239940, 250231, 260524, 270817, 281110, 291402, 301694, 311988, 322279, 332571, 342863, 353154, 363448, 373740, 384034, 394325,
             404618, 414911, 425203, 435494, 445787, 456078, 466372, 476664, 486955, 497249, 507541, 517835, 528126, 538419, 548710, 559002, 569295, 579588, 589879, 600172, 610465, 620758, 631050, 641342, 651636, 661925, 672219, 682511, 692802, 703096, 713388, 723680, 733973, 744266, 754559]
    攻击次数 = 19
    攻击次数1 = 1
    CD = 180
    #基础 = 1793
    #成长 = 542
    #基础2 = 34095
    #成长2 = 10292


class 技能34(被动技能):
    名称 = '暗·短剑精通'
    所在等级 = 15
    等级上限 = 40
    基础等级 = 30
    关联技能 = ['所有']
    数据1 = [0, 14, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 360, 375, 390, 405, 420, 435, 450, 465, 480, 495, 510, 525,
           540, 555, 570, 585, 600, 615, 630, 645, 660, 675, 690, 705, 720, 735, 750, 765, 780, 795, 810, 825, 840, 855, 870, 885, 900, 915, 930, 945, 960, 975, 990, 1005, 1020, 1035, 1050]
    数据2 = [0, 12, 26, 39, 51, 64, 77, 90, 103, 116, 129, 141, 154, 167, 180, 193, 206, 219, 231, 244, 257, 270, 283, 296, 309, 321, 334, 347, 360, 373, 386, 399, 411, 424, 437, 450,
           463, 476, 489, 501, 514, 527, 540, 553, 566, 579, 591, 604, 617, 630, 643, 656, 669, 681, 694, 707, 720, 733, 746, 759, 771, 784, 797, 810, 823, 836, 849, 861, 874, 887, 900]
    # 物理攻击

    def 加成倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '短剑':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.015, 5)

    # 魔法攻击
    def 加成倍率2(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '短剑':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.0129, 5)

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '短剑':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.015, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '短剑':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.0129, 5)


class 技能35(被动技能):
    名称 = '暗·太刀精通'
    所在等级 = 15
    等级上限 = 40
    基础等级 = 30
    关联技能 = ['所有']
    数据1 = [0, 13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156, 169, 182, 195, 208, 221, 234, 247, 260, 273, 286, 299, 312, 325, 338, 351, 364, 377, 390, 403, 416, 429, 442, 455,
           468, 481, 494, 507, 520, 533, 546, 559, 572, 585, 598, 611, 624, 637, 650, 663, 676, 689, 702, 715, 728, 741, 754, 767, 780, 793, 806, 819, 832, 845, 858, 871, 884, 897, 910]
    数据2 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300, 312, 324, 336, 348, 360, 372, 384, 396, 408, 420,
           432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600, 612, 624, 636, 648, 660, 672, 684, 696, 708, 720, 732, 744, 756, 768, 780, 792, 804, 816, 828, 840]

    # 物理攻击
    def 加成倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '太刀':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.013, 5)

    # 魔法攻击
    def 加成倍率2(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '太刀':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '太刀':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.013, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '太刀':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)


class 技能36(被动技能):
    名称 = '暗·巨剑精通'
    所在等级 = 15
    等级上限 = 40
    基础等级 = 30
    关联技能 = ['所有']
    数据1 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300,
           312, 324, 336, 348, 360, 372, 384, 396, 408, 420, 432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600]
    数据2 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300,
           312, 324, 336, 348, 360, 372, 384, 396, 408, 420, 432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600]
    # 物理攻击

    def 加成倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '巨剑':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 魔法攻击
    def 加成倍率2(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '巨剑':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '巨剑':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '巨剑':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)


class 技能37(被动技能):
    名称 = '暗·钝器精通'
    所在等级 = 15
    等级上限 = 40
    基础等级 = 30
    关联技能 = ['所有']
    数据1 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300, 312, 324, 336, 348, 360, 372, 384, 396, 408, 420,
           432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600, 612, 624, 636, 648, 660, 672, 684, 696, 708, 720, 732, 744, 756, 768, 780, 792, 804, 816, 828, 840]
    数据2 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300, 312, 324, 336, 348, 360, 372, 384, 396, 408, 420,
           432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600, 612, 624, 636, 648, 660, 672, 684, 696, 708, 720, 732, 744, 756, 768, 780, 792, 804, 816, 828, 840]

    # 物理攻击
    def 加成倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '钝器':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 魔法攻击
    def 加成倍率2(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '钝器':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '钝器':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '钝器':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)


class 技能38(被动技能):
    名称 = '暗·光剑精通'
    所在等级 = 15
    等级上限 = 40
    基础等级 = 30
    关联技能 = ['所有']
    数据1 = [0, 26, 40, 53, 66, 79, 92, 106, 119, 132, 145, 158, 172, 185, 198, 211, 224, 238, 251, 264, 277, 290, 304, 317, 330, 343,
           356, 370, 383, 396, 409, 422, 436, 449, 462, 475, 488, 502, 515, 528, 541, 554, 568, 581, 594, 607, 620, 634, 647, 660, 660]
    数据2 = [0, 26, 40, 53, 66, 79, 92, 106, 119, 132, 145, 158, 172, 185, 198, 211, 224, 238, 251, 264, 277, 290, 304, 317, 330, 343,
           356, 370, 383, 396, 409, 422, 436, 449, 462, 475, 488, 502, 515, 528, 541, 554, 568, 581, 594, 607, 620, 634, 647, 660, 660]
    # 物理攻击

    def 加成倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '光剑':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.02 + self.等级 * 0.013, 5)

    # 魔法攻击
    def 加成倍率2(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '光剑':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.02 + self.等级 * 0.013, 5)

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '光剑':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.02 + self.等级 * 0.013, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '光剑':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.02 + self.等级 * 0.013, 5)


class 技能39(被动技能):
    名称 = '时间停滞'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 <= 15:
            return round(1.045 + 0.01 * self.等级, 5)
        else:
            return round(0.97 + 0.015 * self.等级, 5)


class 技能40(被动技能):
    名称 = '次元融合'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11
    关联技能 = ['无']
    自定义描述 = 1

    def 技能描述(self, 武器类型):
        return '力量/智力+' + str(int(self.力智倍率() * 100 - 100)) + '%'

    def 力智倍率(self):
        return round(1 + 0.02 * self.等级, 5)
        # 每级2%力智


class 技能41(被动技能):
    名称 = '自我觉醒'
    所在等级 = 75
    等级上限 = 1
    基础等级 = 1
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        return round(1.01 + 0.1 * self.等级, 5)

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.01 + self.等级 * 0.1, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.01 + self.等级 * 0.1, 5)


class 技能42(被动技能):
    名称 = '卓越之力'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 4
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能43(被动技能):
    名称 = '超卓之心'
    所在等级 = 95
    等级上限 = 11
    基础等级 = 1
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.045 + 0.005 * self.等级, 5)


class 技能44(被动技能):
    名称 = '觉醒之抉择'
    所在等级 = 100
    等级上限 = 40
    基础等级 = 2
    关联技能 = ['超时空碎裂']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.10 + 0.05 * self.等级, 5)


class 技能45(被动技能):
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    等级上限 = 200
    基础等级 = 100
    关联技能 = ['挑击']
    数据1 = [0, 1000, 1058, 1115, 1173, 1230, 1288, 1345, 1403, 1461, 1518, 1576, 1633, 1691, 1748, 1806, 1895, 1984, 2073, 2162, 2251, 2339, 2428, 2517, 2606, 2695, 2784, 2873, 2962, 3051, 3140, 3228, 3317, 3406, 3495, 3584, 3673, 3762, 3851, 3940, 4029, 4118, 4206, 4295, 4384, 4473, 4562, 4651, 4740, 4829, 4918, 5007, 5095, 5184, 5273, 5362, 5451, 5540, 5629, 5718, 5807, 5896, 5985, 6073, 6162, 6251, 6340, 6429, 6518, 6607, 6696, 6785, 6874, 6963, 7051, 7140, 7229, 7318, 7407, 7496, 7585, 7674, 7763, 7852, 7940, 8029, 8118, 8207, 8296, 8385, 8474, 8563, 8652, 8741, 8830, 8918, 9007, 9096, 9185, 9274, 9363, 9452, 9541, 9630, 9719, 9808, 9897, 9986,
           10075, 10164, 10253, 10342, 10431, 10520, 10609, 10698, 10787, 10876, 10965, 11054, 11143, 11232, 11321, 11410, 11499, 11588, 11677, 11766, 11855, 11944, 12033, 12122, 12211, 12300, 12389, 12478, 12567, 12656, 12745, 12834, 12923, 13012, 13101, 13190, 13279, 13368, 13457, 13546, 13635, 13724, 13813, 13902, 13991, 14080, 14169, 14258, 14347, 14436, 14525, 14614, 14703, 14792, 14881, 14970, 15059, 15148, 15237, 15326, 15415, 15504, 15593, 15682, 15771, 15860, 15949, 16038, 16127, 16216, 16305, 16394, 16483, 16572, 16661, 16750, 16839, 16928, 17017, 17106, 17195, 17284, 17373, 17462, 17551, 17640, 17729, 17818, 17907, 17996, 18085, 18174, 18263]

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.数据1[self.等级] / 1000, 5)


技能列表 = []
i = 0
while i >= 0:
    try:
        exec('技能列表.append(技能'+str(i)+'())')
        i += 1
    except:
        i = -1

技能序号 = dict()
for i in range(len(技能列表)):
    技能序号[技能列表[i].名称] = i


黑暗武士二觉序号 = 0
黑暗武士三觉序号 = 0
for i in 技能列表:
    if i.所在等级 == 85:
        黑暗武士二觉序号 = 技能序号[i.名称]
    if i.所在等级 == 100:
        黑暗武士三觉序号 = 技能序号[i.名称]

黑暗武士护石选项 = ['无']
for i in 技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        黑暗武士护石选项.append(i.名称)

黑暗武士符文选项 = ['无']
for i in 技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.是否有伤害 == 1:
        黑暗武士符文选项.append(i.名称)


class 黑暗武士角色属性(角色属性):

    实际名称 = '黑暗武士'
    角色 = '黑暗武士'
    职业 = '黑暗武士'

    武器选项 = ['光剑', '太刀', '巨剑', '短剑', '钝器']

    类型选择 = ['物理百分比', '魔法百分比']

    # 默认
    类型 = '物理百分比'
    防具类型 = '轻甲'
    防具精通属性 = ['力量', '智力']

    主BUFF = 1.54

    远古记忆 = 0

    # 计算CD
    排列技能 = ['无', '无', '无', '无', '无'] * 6

    def __init__(self):
        基础属性输入(self)
        self.技能栏 = deepcopy(技能列表)
        self.技能序号 = deepcopy(技能序号)

    def 被动倍率计算(self):

        self.排列CD计算()

        if self.远古记忆 > 0:
            self.进图智力 += self.远古记忆 * 15

        for i in ['暗·太刀精通', '暗·短剑精通', '暗·巨剑精通', '暗·光剑精通', '暗·钝器精通']:
            if self.武器类型 not in i:
                self.技能栏[self.技能序号[i]].关联技能 = ['无']

        for i in self.技能栏:
            if i.关联技能 != ['无']:
                if i.关联技能 == ['所有']:
                    for j in self.技能栏:
                        if j.是否有伤害 == 1:
                            # 分物理魔法 调用武器精通的加成倍率
                            if i.名称 in ['暗·太刀精通', '暗·短剑精通', '暗·巨剑精通', '暗·光剑精通', '暗·钝器精通']:
                                # if j.类型 == '物理':
                                if self.类型 == '物理百分比':
                                    j.被动倍率 *= i.加成倍率(self.武器类型)
                                else:
                                    j.被动倍率 *= i.加成倍率2(self.武器类型)
                            else:
                                j.被动倍率 *= i.加成倍率(self.武器类型)
                else:
                    for k in i.关联技能:
                        self.技能栏[self.技能序号[k]].被动倍率 *= i.加成倍率(self.武器类型)

    def 伤害指数计算(self):

        防御 = max(self.防御输入 - self.固定减防, 0) * (1 - self.百分比减防)
        基准倍率 = 1.5 * self.主BUFF * (1 - 防御 / (防御 + 20000))

        # 避免出现浮点数取整BUG
        self.伤害增加 += 0.00000001

        self.属性倍率计算()

        if self.计算自适应 == 1:
            self.自适应计算()

        # self.希洛克武器提升()

        面板1 = int((self.面板力量() / 250 + 1) *
                  (self.物理攻击力 + self.进图物理攻击力) * (1 + self.百分比三攻))
        面板2 = int((self.面板智力() / 250 + 1) *
                  (self.魔法攻击力 + self.进图魔法攻击力) * (1 + self.百分比三攻))

        增伤倍率 = 1 + int(self.伤害增加 * 100) / 100
        增伤倍率 *= 1 + self.暴击伤害
        增伤倍率 *= 1 + self.最终伤害
        增伤倍率 *= self.技能攻击力
        增伤倍率 *= 1 + self.持续伤害 * self.持续伤害计算比例
        增伤倍率 *= 1 + self.附加伤害 + self.属性附加 * self.属性倍率
        self.伤害指数1 = 面板1 * self.属性倍率 * 增伤倍率 * 基准倍率 / \
            100 * self.队友增幅系数 * (1 + self.希洛克BUFF * 0.15)
        self.伤害指数2 = 面板2 * self.属性倍率 * 增伤倍率 * 基准倍率 / \
            100 * self.队友增幅系数 * (1 + self.希洛克BUFF * 0.15)

    def 排列CD计算(self):
        # super().CD倍率计算()
        for i in self.排列技能:
            count = 0
            总CD = 0
            恢复速度 = 1
            # 大恍惚CD加速只加速15级以上的，15级以下无效，所以DK在拿15级以下的技能垫技能的时候，会造成整个下排CD加速无效的BUG
            # 先检查是否存在等级<15,造成冷却恢复排列失效的
            if self.装备检查('拥抱晨曦之温暖') or self.装备检查('融化黑暗之温暖'):
                for j in i:
                    if j != '无' and self.技能栏[self.技能序号[j]].所在等级 < 15:
                        恢复速度 = 0
            for j in i:
                if j != '无':
                    count += 1
                    总CD += self.技能栏[self.技能序号[j]
                                    ].等效CD(self.武器类型, self.类型, 恢复速度)
            if count != 0:
                计算CD = 总CD / count * 1.2
                for j in i:
                    if j != '无':
                        self.技能栏[self.技能序号[j]].计算CD = 计算CD

    def 技能单次伤害计算(self, y):
        # y切装标记
        技能单次伤害 = []
        for i in self.技能栏:
            if i.是否有伤害 == 1 and self.技能切装[self.技能序号[i.名称]] != y:
                # 分物理魔法 乘伤害指数
                if i.类型 == '物理':
                    技能单次伤害.append(i.等效百分比(self.武器类型) * self.伤害指数1 * i.被动倍率)
                else:
                    技能单次伤害.append(i.等效百分比(self.武器类型) * self.伤害指数2 * i.被动倍率)
            else:
                技能单次伤害.append(0)
        return 技能单次伤害

    def 站街力量(self):
        return int(max(self.力量, self.智力) * self.技能栏[self.技能序号['次元融合']].力智倍率())

    def 站街智力(self):
        return self.站街力量()

    def 面板力量(self, 取整=1):
        if self.系统奶 == False:
            if 取整 == 1:
                power = int(int((self.力量 + self.进图力量)) * (1 + self.百分比力智)
                            * self.技能栏[self.技能序号['次元融合']].力智倍率())
                intelligence = int(int(
                    (self.智力 + self.进图智力)) * (1 + self.百分比力智) * self.技能栏[self.技能序号['次元融合']].力智倍率())
                return int(max(power, intelligence))
            else:
                power = (self.力量 + self.进图力量) * (1 + self.百分比力智) * \
                    self.技能栏[self.技能序号['次元融合']].力智倍率()
                intelligence = (self.智力 + self.进图智力) * (1 +
                                                        self.百分比力智) * self.技能栏[self.技能序号['次元融合']].力智倍率()
                return max(power, intelligence)
        else:
            if 取整 == 1:
                power = int(int((self.力量 + int((self.力量 - self.基础力量) * 1.35 + 7664) +
                            self.进图力量)) * (1 + self.百分比力智) * self.技能栏[self.技能序号['次元融合']].力智倍率())
                intelligence = int(int((self.智力 + int((self.智力 - self.基础智力) * 1.35 + 7664) +
                                   self.进图智力)) * (1 + self.百分比力智) * self.技能栏[self.技能序号['次元融合']].力智倍率())
                return int(max(power, intelligence))
            else:
                power = (self.力量 + int((self.力量 - self.基础力量) * 1.35 + 7664) +
                         self.进图力量) * (1 + self.百分比力智) * self.技能栏[self.技能序号['次元融合']].力智倍率()
                intelligence = (self.智力 + int((self.智力 - self.基础智力) * 1.35 + 7664) +
                                self.进图智力) * (1 + self.百分比力智) * self.技能栏[self.技能序号['次元融合']].力智倍率()
                return max(power, intelligence)

    def 面板智力(self, 取整=1):
        return self.面板力量(取整)


class 黑暗武士(角色窗口):

    def 窗口属性输入(self):
        self.初始属性 = 黑暗武士角色属性()
        self.角色属性A = 黑暗武士角色属性()
        self.角色属性B = 黑暗武士角色属性()
        self.一觉序号 = 黑暗武士二觉序号
        self.二觉序号 = 黑暗武士二觉序号
        self.三觉序号 = 黑暗武士三觉序号
        self.护石选项 = deepcopy(黑暗武士护石选项)
        self.符文选项 = deepcopy(黑暗武士符文选项)

    def 界面(self):
        super().界面()

        # for i in ([self.守门人属强] + self.希洛克套装按钮 + self.希洛克单件按钮 + self.希洛克装备图标 + self.希洛克武器词条):
        #     i.move(i.x() - 85, i.y() + 380)

        for i in [self.觉醒选择, self.一觉图片, self.二觉图片, self.一觉遮罩, self.二觉遮罩]:
            i.move(-1000, -1000)

        for i in self.角色属性A.技能栏:
            序号 = self.角色属性A.技能序号[i.名称]
            if i.所在等级 == 50:
                self.等级调整[序号].clear()
                for j in range(- i.基础等级, i.等级上限 - i.基础等级 + 1):
                    self.等级调整[序号].addItem(str(j))

        初始x = 310
        初始y = 640
        self.技能排列 = QLabel(self.main_frame2)
        self.技能排列.setPixmap(
            QPixmap('./ResourceFiles/'+self.角色属性A.实际名称 + "/技能/skill.png"))
        self.技能排列.resize(242, 293)
        self.技能排列.move(初始x, 初始y)

        技能名称 = ['无']
        for i in self.初始属性.技能栏:
            if i.是否主动 == 1:
                技能名称.append(i.名称)

        self.技能排列 = []
        self.排列图片 = []
        for i in range(6):
            temp = []
            temp2 = []
            for j in range(6):
                temp.append(MyQComboBox(self.main_frame2))
                temp[j].resize(100, 22)
                temp[j].addItems(技能名称)
                temp[j].currentIndexChanged.connect(
                    lambda state, x=i, y=j: self.排列图片更改(x, y))
                if i == 0:
                    temp[j].move(310 + 110 * j, 440 + 28 * i)
                else:
                    temp[j].move(310 + 110 * j, 450 + 28 * i)
                temp2.append(QLabel(self.main_frame2))
                temp2[j].resize(26, 26)
                temp2[j].setAlignment(Qt.AlignCenter)
                if i == 0:
                    temp2[j].move(初始x + 10 + 39 * j, 初始y + 24 + 44 * i)
                else:
                    temp2[j].move(初始x + 10 + 39 * j, 初始y + 39 + 44 * i)
            self.技能排列.append(temp)
            self.排列图片.append(temp2)

        self.清空排列按钮 = QPushButton('清空排列', self.main_frame2)
        self.清空排列按钮.clicked.connect(lambda state: self.清空排列())
        self.清空排列按钮.move(850, 400)
        self.清空排列按钮.resize(100, 20)
        self.清空排列按钮.setStyleSheet(按钮样式)

        self.护甲精通选择 = MyQComboBox(self.main_frame2)
        self.护甲精通选择.addItem('轻甲')
        self.护甲精通选择.addItem('布甲')
        self.护甲精通选择.addItem('重甲')
        self.护甲精通选择.addItem('板甲')
        self.护甲精通选择.resize(120, 20)
        self.护甲精通选择.move(720, 400)

        self.职业存档.append(('护甲精通选择', self.护甲精通选择, 1))
        for i in range(6):
            for j in range(6):
                self.职业存档.append(('技能-{}-{}'.format(i, j), self.技能排列[i][j], 1))
      
    def 清空排列(self):

        box = QMessageBox(QMessageBox.Warning, "提示", "是否清空排列？")
        box.setWindowIcon(self.icon)
        yes = box.addButton(self.tr("确定"), QMessageBox.YesRole)
        no = box.addButton(self.tr("取消"), QMessageBox.NoRole)
        box.exec_()
        if box.clickedButton() == yes:
            for i in self.技能排列:
                for j in i:
                    j.setCurrentIndex(0)

    def 排列图片更改(self, x, y):
        技能字典 = {}
        for i in self.技能排列:
            for j in i:
                if j.currentText() != '无':
                    技能字典[j.currentText()] = 技能字典.get(j.currentText(), 0) + 1

        if self.技能排列[x][y].currentText() != '无':
            self.排列图片[x][y].setPixmap(
                self.技能图片[self.角色属性A.技能序号[self.技能排列[x][y].currentText()]])
            if 技能字典[self.技能排列[x][y].currentText()] > 1:
                self.技能排列[x][y].setStyleSheet(下拉框样式_warn)
            else:
                self.技能排列[x][y].setStyleSheet(下拉框样式)
        else:
            self.排列图片[x][y].setPixmap(QPixmap('无'))
            self.技能排列[x][y].setStyleSheet(下拉框样式)

    def 输入属性(self, 属性, x=0):
        super().输入属性(属性, x)

        排列倍率 = [2, 1, 1.3, 1.5, 1.8, 2]

        for i in range(6):
            for j in range(6):
                if self.技能排列[i][j].currentText() != '无':
                    属性.技能栏[属性.技能序号[self.技能排列[i][j].currentText()]].倍率 *= 排列倍率[i]

        排列技能 = []
        for j in range(6):
            temp = []
            for i in range(1, 6):
                temp.append(self.技能排列[i][j].currentText())
            排列技能.append(temp)

        属性.排列技能 = deepcopy(排列技能)

        for i in 属性.技能栏:
            if i.是否主动 == 1 and i.所在等级 >= 40 and i.名称 != '禁魂斩':
                if 属性.类型 == '物理百分比':
                    i.类型 = '物理'
                else:
                    i.类型 = '魔法'

        #防具类型 = '轻甲'

        属性.护甲精通 = self.护甲精通选择.currentIndex()
        if 属性.护甲精通 == 0:
            属性.防具类型 = '轻甲'
            属性.防具精通属性 = ['力量']
        elif 属性.护甲精通 == 1:
            属性.防具类型 = '布甲'
            属性.防具精通属性 = ['智力']
        elif 属性.护甲精通 == 2:
            属性.防具类型 = '重甲'
            属性.防具精通属性 = ['力量']
        elif 属性.护甲精通 == 3:
            属性.防具类型 = '板甲'
            属性.防具精通属性 = ['智力']
